var Schema = (function() {
	var instance = {};

	var types = (function () {
		var instance = {};
		function WsdlObject(_name, _type, _value) {
			var name = _name;
			var type = _type;
			var value = _value;
			var attr = new Array();
			var elementsArray = new Array();

			this.getName = getName;
			this.getType = getType;
			this.getValue = getValue;
			this.getAttr = getAttr;
			this.setName = setName;
			this.setType = setType;
			this.setValue = setValue;
			this.setAttr = setAttr;
			this.addElement = addElement;

			this.getAAttr = getAAttr;
			this.setAAttr = setAAttr;
			this.newAttr = newAttr;

			function getName() {
				return name;
			}

			function getType() {
				return type;
			}

			function getValue() {
				return value;
			}

			function getAttr() {
				return attr;
			}

			function setName(_name) {
				name = _name;
			}

			function setType(_type) {   
				type = _type;
			}

			function setValue(_value) {   
				value = _value;
			}

			function setAttr(_attr) {
				attr = _attr;
			}

			function addElement(_obj) {
				elementsArray.push(_obj);
			}

			function getAAttr(_name, _pos) {
				if (_pos == undefined) _pos = 0;
				if (_pos > attr.length) throw new Error (500, "Tentativa de recuperar uma posi��o inexistente");
				if (_pos == attr.length) {
					this.newAttr();
				}
				for (var p in attr[_pos]) {
					if (_name == attr[_pos][p].getName()) {
						return attr[_pos][p];
					}
				}
			}

			function setAAttr(_attr, _name, _pos) {
				if (_pos == undefined) _pos = 0;
				if (_pos > attr.length) throw new Error (500, "Tentativa de fazer uma atribui��o fora da ordem.");
				if (_pos == attr.length) {
					this.newAttr();
				}
				for (var p in attr[_pos]) {
					if (_name == attr[_pos][p].getName()) {
						attr[_pos][p] = _attr;
					}
				}
			}

			function newAttr() {
				var i = this.getAttr().length;
				this.getAttr()[i] = new Array();
				for (var j = 0; j < elementsArray.length; j++) {
					this.getAttr()[i].push(elementsArray[j]);
				}
			}
		}
		instance.WsdlObject = WsdlObject;

		instance.PromotionBenefits = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.PromotionBenefit("Benefit"));
			return instance;
		}

		instance.NonNegativeIntegerWithUnits = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			return instance;
		}

		instance.CustomerContentSearchRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.positiveInteger("CustomerPage"));
			instance.addElement(new types.string("Email"));
			instance.addElement(new types.string("Name"));
			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.DecimalWithUnits = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			return instance;
		}

		instance.SellerLookupRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("ResponseGroup"));
			instance.addElement(new types.string("SellerId"));
			instance.addElement(new types.positiveInteger("FeedbackPage"));
			return instance;
		}

		instance.CustomerContentLookupRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("CustomerId"));
			instance.addElement(new types.string("ResponseGroup"));
			instance.addElement(new types.positiveInteger("ReviewPage"));
			instance.addElement(new types.positiveInteger("TagPage"));
			instance.addElement(new types.positiveInteger("TagsPerPage"));
			instance.addElement(new types.string("TagSort"));
			return instance;
		}

		instance.SellerListingSearchRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("Keywords"));
			instance.addElement(new types.positiveInteger("ListingPage"));
			instance.addElement(new types.string("OfferStatus"));

			instance.addElement(new types.string("ResponseGroup"));
			instance.addElement(new types.string("SellerId"));
			instance.addElement(new types.string("Sort"));
			instance.addElement(new types.string("Title"));
			return instance;
		}

		instance.CartAddRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("CartId"));
			instance.addElement(new types.string("HMAC"));
			instance.addElement(new types.string("MergeCart"));
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("Items", "Complex",undefined);
				instance.addElement(new function() {
					var instance = {};
					instance.inheritFrom = types.WsdlObject;
					instance.inheritFrom("Item", "Complex",undefined);
					instance.addElement(new types.string("ASIN"));
					instance.addElement(new types.string("OfferListingId"));
					instance.addElement(new types.positiveInteger("Quantity"));
					instance.addElement(new types.string("AssociateTag"));
					instance.addElement(new types.string("ListItemId"));
					instance.addElement(new function() {
						var instance = {};
						instance.inheritFrom = types.WsdlObject;
						instance.inheritFrom("MetaData", "Complex",undefined);
						instance.addElement(new types.string("Key"));
						instance.addElement(new types.string("Value"));
						return instance;
					});

					return instance;
				});

				return instance;
			});

			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.ItemLookupRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("FutureLaunchDate"));
			instance.addElement(new types.string("IdType"));

			instance.addElement(new types.string("ISPUPostalCode"));
			instance.addElement(new types.string("MerchantId"));
			instance.addElement(new types.positiveInteger("OfferPage"));
			instance.addElement(new types.string("ItemId"));
			instance.addElement(new types.string("ResponseGroup"));
			instance.addElement(new types.positiveInteger("ReviewPage"));
			instance.addElement(new types.string("ReviewSort"));
			instance.addElement(new types.string("SearchIndex"));
			instance.addElement(new types.string("SearchInsideKeywords"));
			instance.addElement(new types.positiveInteger("TagPage"));
			instance.addElement(new types.positiveInteger("TagsPerPage"));
			instance.addElement(new types.string("TagSort"));
			instance.addElement(new types.positiveIntegerOrAll("VariationPage"));
			instance.addElement(new types.positiveIntegerOrAll("RelatedItemPage"));
			instance.addElement(new types.string("RelationshipType"));
			return instance;
		}

		instance.Price = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.integer("Amount"));
			instance.addElement(new types.string("CurrencyCode"));
			instance.addElement(new types.string("FormattedPrice"));
			return instance;
		}

		instance.Address = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("Name"));
			instance.addElement(new types.string("Address1"));
			instance.addElement(new types.string("Address2"));
			instance.addElement(new types.string("Address3"));
			instance.addElement(new types.string("City"));
			instance.addElement(new types.string("State"));
			instance.addElement(new types.string("PostalCode"));
			instance.addElement(new types.string("Country"));
			return instance;
		}

		instance.SellerListingLookupRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("Id"));
			instance.addElement(new types.string("SellerId"));
			instance.addElement(new types.string("IdType"));

			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.ItemSearchRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("Actor"));
			instance.addElement(new types.string("Artist"));
			instance.addElement(new types.string("Availability"));

			instance.addElement(new types.string("Author"));
			instance.addElement(new types.string("Brand"));
			instance.addElement(new types.string("BrowseNode"));
			instance.addElement(new types.string("City"));
			instance.addElement(new types.string("Composer"));
			instance.addElement(new types.string("Conductor"));
			instance.addElement(new types.positiveInteger("Count"));
			instance.addElement(new types.string("Cuisine"));
			instance.addElement(new types.string("Director"));
			instance.addElement(new types.string("FutureLaunchDate"));
			instance.addElement(new types.string("ISPUPostalCode"));
			instance.addElement(new types.positiveInteger("ItemPage"));
			instance.addElement(new types.string("Keywords"));
			instance.addElement(new types.string("Manufacturer"));
			instance.addElement(new types.nonNegativeInteger("MaximumPrice"));
			instance.addElement(new types.string("MerchantId"));
			instance.addElement(new types.nonNegativeInteger("MinimumPrice"));
			instance.addElement(new types.string("MusicLabel"));
			instance.addElement(new types.string("Neighborhood"));
			instance.addElement(new types.string("Orchestra"));
			instance.addElement(new types.string("PostalCode"));
			instance.addElement(new types.string("Power"));
			instance.addElement(new types.string("Publisher"));
			instance.addElement(new types.positiveIntegerOrAll("RelatedItemPage"));
			instance.addElement(new types.string("RelationshipType"));
			instance.addElement(new types.string("ResponseGroup"));
			instance.addElement(new types.string("ReviewSort"));
			instance.addElement(new types.string("SearchIndex"));
			instance.addElement(new types.string("Sort"));
			instance.addElement(new types.string("State"));
			instance.addElement(new types.positiveInteger("TagPage"));
			instance.addElement(new types.positiveInteger("TagsPerPage"));
			instance.addElement(new types.string("TagSort"));
			instance.addElement(new types.string("TextStream"));
			instance.addElement(new types.string("Title"));
			instance.addElement(new types.string("ReleaseDate"));
			return instance;
		}

		instance.TagLookupRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("TagName"));
			instance.addElement(new types.string("CustomerId"));
			instance.addElement(new types.positiveInteger("TagPage"));
			instance.addElement(new types.positiveInteger("Count"));
			instance.addElement(new types.string("TagSort"));
			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.CartCreateRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("MergeCart"));
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("Items", "Complex",undefined);
				instance.addElement(new function() {
					var instance = {};
					instance.inheritFrom = types.WsdlObject;
					instance.inheritFrom("Item", "Complex",undefined);
					instance.addElement(new types.string("ASIN"));
					instance.addElement(new types.string("OfferListingId"));
					instance.addElement(new types.positiveInteger("Quantity"));
					instance.addElement(new types.string("AssociateTag"));
					instance.addElement(new types.string("ListItemId"));
					instance.addElement(new function() {
						var instance = {};
						instance.inheritFrom = types.WsdlObject;
						instance.inheritFrom("MetaData", "Complex",undefined);
						instance.addElement(new types.string("Key"));
						instance.addElement(new types.string("Value"));
						return instance;
					});

					return instance;
				});

				return instance;
			});

			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.PromotionEligibilityRequirement = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("EligibilityRequirementType"));
			instance.addElement(new types.int("Quantity"));
			instance.addElement(new types.Price("CurrencyAmount"));
			return instance;
		}

		instance.CartModifyRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("CartId"));
			instance.addElement(new types.string("HMAC"));
			instance.addElement(new types.string("MergeCart"));
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("Items", "Complex",undefined);
				instance.addElement(new function() {
					var instance = {};
					instance.inheritFrom = types.WsdlObject;
					instance.inheritFrom("Item", "Complex",undefined);
					instance.addElement(new types.string("Action"));

					instance.addElement(new types.string("CartItemId"));
					instance.addElement(new types.nonNegativeInteger("Quantity"));
					return instance;
				});

				return instance;
			});

			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.TransactionLookupRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("ResponseGroup"));
			instance.addElement(new types.string("TransactionId"));
			return instance;
		}

		instance.HelpRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("About"));
			instance.addElement(new types.string("HelpType"));

			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.PromotionEligibilityRequirements = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.PromotionEligibilityRequirement("EligibilityRequirement"));
			return instance;
		}

		instance.SimilarityLookupRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("ItemId"));
			instance.addElement(new types.string("ISPUPostalCode"));
			instance.addElement(new types.string("MerchantId"));
			instance.addElement(new types.string("ResponseGroup"));
			instance.addElement(new types.string("ReviewSort"));
			instance.addElement(new types.string("SimilarityType"));

			return instance;
		}

		instance.VehicleSearchRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.nonNegativeInteger("Year"));
			instance.addElement(new types.nonNegativeInteger("MakeId"));
			instance.addElement(new types.nonNegativeInteger("ModelId"));
			instance.addElement(new types.nonNegativeInteger("TrimId"));
			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.ListLookupRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("ISPUPostalCode"));
			instance.addElement(new types.string("ListId"));
			instance.addElement(new types.string("ListType"));

			instance.addElement(new types.string("MerchantId"));
			instance.addElement(new types.string("ProductGroup"));
			instance.addElement(new types.positiveInteger("ProductPage"));
			instance.addElement(new types.string("ResponseGroup"));
			instance.addElement(new types.string("ReviewSort"));
			instance.addElement(new types.string("Sort"));
			instance.addElement(new types.boolean("IsOmitPurchasedItems"));
			instance.addElement(new types.boolean("IsIncludeUniversal"));
			return instance;
		}

		instance.positiveIntegerOrAll = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.StringWithUnits = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			return instance;
		}

		instance.CartItem = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("CartItemId"));
			instance.addElement(new types.string("ASIN"));
			instance.addElement(new types.string("ExchangeId"));
			instance.addElement(new types.string("MerchantId"));
			instance.addElement(new types.string("SellerId"));
			instance.addElement(new types.string("SellerNickname"));
			instance.addElement(new types.string("Quantity"));
			instance.addElement(new types.string("Title"));
			instance.addElement(new types.string("ProductGroup"));
			instance.addElement(new types.string("ListOwner"));
			instance.addElement(new types.string("ListType"));
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("MetaData", "Complex",undefined);
				instance.addElement(new function() {
					var instance = {};
					instance.inheritFrom = types.WsdlObject;
					instance.inheritFrom("KeyValuePair", "Complex",undefined);
					instance.addElement(new types.string("Key"));
					instance.addElement(new types.string("Value"));
					return instance;
				});

				return instance;
			});

			instance.addElement(new types.Price("Price"));
			instance.addElement(new types.Price("ItemTotal"));
			return instance;
		}

		instance.VehiclePartLookupRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("ItemId"));
			instance.addElement(new types.string("IdType"));
			instance.addElement(new types.nonNegativeInteger("Year"));
			instance.addElement(new types.nonNegativeInteger("MakeId"));
			instance.addElement(new types.nonNegativeInteger("ModelId"));
			instance.addElement(new types.nonNegativeInteger("TrimId"));
			instance.addElement(new types.nonNegativeInteger("BedId"));
			instance.addElement(new types.nonNegativeInteger("BodyStyleId"));
			instance.addElement(new types.nonNegativeInteger("BrakesId"));
			instance.addElement(new types.nonNegativeInteger("DriveTypeId"));
			instance.addElement(new types.nonNegativeInteger("EngineId"));
			instance.addElement(new types.nonNegativeInteger("MfrBodyCodeId"));
			instance.addElement(new types.nonNegativeInteger("SpringTypesId"));
			instance.addElement(new types.nonNegativeInteger("SteeringId"));
			instance.addElement(new types.nonNegativeInteger("TransmissionId"));
			instance.addElement(new types.nonNegativeInteger("WheelbaseId"));
			instance.addElement(new types.nonNegativeInteger("BrowseNodeId"));
			instance.addElement(new types.nonNegativeInteger("FitmentPage"));
			instance.addElement(new types.nonNegativeInteger("FitmentCount"));
			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.PromotionBenefit = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("BenefitType"));
			instance.addElement(new types.string("ComponentType"));
			instance.addElement(new types.int("Quantity"));
			instance.addElement(new types.double("PercentOff"));
			instance.addElement(new types.Price("FixedAmount"));
			instance.addElement(new types.Price("Ceiling"));
			return instance;
		}

		instance.CartClearRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("CartId"));
			instance.addElement(new types.string("HMAC"));
			instance.addElement(new types.string("MergeCart"));
			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.VehiclePartSearchRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.nonNegativeInteger("Year"));
			instance.addElement(new types.nonNegativeInteger("MakeId"));
			instance.addElement(new types.nonNegativeInteger("ModelId"));
			instance.addElement(new types.nonNegativeInteger("TrimId"));
			instance.addElement(new types.nonNegativeInteger("BedId"));
			instance.addElement(new types.nonNegativeInteger("BodyStyleId"));
			instance.addElement(new types.nonNegativeInteger("BrakesId"));
			instance.addElement(new types.nonNegativeInteger("DriveTypeId"));
			instance.addElement(new types.nonNegativeInteger("EngineId"));
			instance.addElement(new types.nonNegativeInteger("MfrBodyCodeId"));
			instance.addElement(new types.nonNegativeInteger("SpringTypesId"));
			instance.addElement(new types.nonNegativeInteger("SteeringId"));
			instance.addElement(new types.nonNegativeInteger("TransmissionId"));
			instance.addElement(new types.nonNegativeInteger("WheelbaseId"));
			instance.addElement(new types.nonNegativeInteger("BrowseNodeId"));
			instance.addElement(new types.string("Brand"));
			instance.addElement(new types.nonNegativeInteger("Count"));
			instance.addElement(new types.string("FromItemId"));
			instance.addElement(new types.string("PartPageDirection"));
			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.ListSearchRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("City"));
			instance.addElement(new types.string("Email"));
			instance.addElement(new types.string("FirstName"));
			instance.addElement(new types.string("LastName"));
			instance.addElement(new types.positiveInteger("ListPage"));
			instance.addElement(new types.string("ListType"));

			instance.addElement(new types.string("Name"));
			instance.addElement(new types.string("ResponseGroup"));
			instance.addElement(new types.string("State"));
			return instance;
		}

		instance.BrowseNodeLookupRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("BrowseNodeId"));
			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.Image = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("URL"));
			instance.addElement(new types.DecimalWithUnits("Height"));
			instance.addElement(new types.DecimalWithUnits("Width"));
			instance.addElement(new types.string("IsVerified"));
			return instance;
		}

		instance.CartGetRequest = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("CartId"));
			instance.addElement(new types.string("HMAC"));
			instance.addElement(new types.string("MergeCart"));
			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		}

		instance.PromotionItemApplicability = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("ASIN"));
			instance.addElement(new types.boolean("IsInBenefitSet"));
			instance.addElement(new types.boolean("IsInEligibilityRequirementSet"));
			return instance;
		}

		instance.Tagging = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Complex",undefined);
			instance.addElement(new types.string("Name"));
			instance.addElement(new types.string("EntityId"));
			instance.addElement(new types.string("UserId"));
			instance.addElement(new types.string("Time"));
			return instance;
		}

		instance.ENTITIES = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.language = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.unsignedByte = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.IDREFS = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.int = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.double = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.normalizedString = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.byte = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.gMonthDay = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.base64Binary = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.time = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.ENTITY = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.ID = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.boolean = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.NOTATION = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.nonPositiveInteger = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.NCName = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.anyURI = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.gDay = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.float = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.long = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.nonNegativeInteger = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.string = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.IDREF = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.positiveInteger = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.Name = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.duration = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.unsignedLong = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.integer = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.negativeInteger = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.unsignedInt = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.decimal = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.token = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.hexBinary = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.short = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.gYear = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.gMonth = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.dateTime = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.QName = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.NMTOKENS = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.gYearMonth = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.NMTOKEN = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.date = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		instance.unsignedShort = function(_name) {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom(_name, "Simple",undefined);
			return instance;
		}

		return instance;
	})();

	instance.inheritFrom = types.WsdlObject;
	instance.inheritFrom("schema","Complex",undefined);

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartClear", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.CartClearRequest("Shared"));
		instance.addElement(new types.CartClearRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SellerListingSearch", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.SellerListingSearchRequest("Shared"));
		instance.addElement(new types.SellerListingSearchRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SellerListings", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("TotalResults"));
		instance.addElement(new types.nonNegativeInteger("TotalPages"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Collections", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Collection", "Complex",undefined);
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("CollectionSummary", "Complex",undefined);
				instance.addElement(new types.Price("LowestListPrice"));
				instance.addElement(new types.Price("HighestListPrice"));
				instance.addElement(new types.Price("LowestSalePrice"));
				instance.addElement(new types.Price("HighestSalePrice"));
				return instance;
			});

			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("CollectionParent", "Complex",undefined);
				instance.addElement(new types.string("ASIN"));
				instance.addElement(new types.string("Title"));
				return instance;
			});

			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("CollectionItem", "Complex",undefined);
				instance.addElement(new types.string("ASIN"));
				instance.addElement(new types.string("Title"));
				return instance;
			});

			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ItemAttributes", "Complex",undefined);
		instance.addElement(new types.string("Actor"));
		instance.addElement(new types.Address("Address"));
		instance.addElement(new types.string("Age"));
		instance.addElement(new types.DecimalWithUnits("AmazonMaximumAge"));
		instance.addElement(new types.DecimalWithUnits("AmazonMinimumAge"));
		instance.addElement(new types.string("AnalogVideoFormat"));
		instance.addElement(new types.string("ApertureModes"));
		instance.addElement(new types.string("Artist"));
		instance.addElement(new types.string("AspectRatio"));
		instance.addElement(new types.string("AssemblyInstructions"));
		instance.addElement(new types.string("AssemblyRequired"));
		instance.addElement(new types.string("AudienceRating"));
		instance.addElement(new types.string("AudioFormat"));
		instance.addElement(new types.string("Author"));
		instance.addElement(new types.string("BackFinding"));
		instance.addElement(new types.string("BandMaterialType"));
		instance.addElement(new types.string("BatteriesIncluded"));
		instance.addElement(new types.string("BatteriesRequired"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("Batteries"));
		instance.addElement(new types.string("BatteryDescription"));
		instance.addElement(new types.string("BatteryType"));
		instance.addElement(new types.string("BezelMaterialType"));
		instance.addElement(new types.string("Binding"));
		instance.addElement(new types.string("BookSizeDescription"));
		instance.addElement(new types.string("Brand"));
		instance.addElement(new types.string("CalendarType"));
		instance.addElement(new types.string("CameraManualFeatures"));
		instance.addElement(new types.DecimalWithUnits("CaseDiameter"));
		instance.addElement(new types.string("CaseMaterialType"));
		instance.addElement(new types.DecimalWithUnits("CaseThickness"));
		instance.addElement(new types.string("CaseType"));
		instance.addElement(new types.string("CatalogNumber"));
		instance.addElement(new types.string("Category"));
		instance.addElement(new types.string("CategoryBin"));
		instance.addElement(new types.string("CDRWDescription"));
		instance.addElement(new types.string("ChainType"));
		instance.addElement(new types.string("Character"));
		instance.addElement(new types.string("CEROAgeRating"));
		instance.addElement(new types.string("ClaspType"));
		instance.addElement(new types.string("ClothingSize"));
		instance.addElement(new types.string("ClubType"));
		instance.addElement(new types.string("Color"));
		instance.addElement(new types.string("Compatibility"));
		instance.addElement(new types.string("CompatibleDevices"));
		instance.addElement(new types.string("ComputerHardwareType"));
		instance.addElement(new types.string("ComputerPlatform"));
		instance.addElement(new types.string("Connectivity"));
		instance.addElement(new types.DecimalWithUnits("ContinuousShootingSpeed"));
		instance.addElement(new types.string("Country"));
		instance.addElement(new types.string("CPUManufacturer"));
		instance.addElement(new types.DecimalWithUnits("CPUSpeed"));
		instance.addElement(new types.string("CPUType"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Creator", "Complex",undefined);
			return instance;
		});

		instance.addElement(new types.string("Cuisine"));
		instance.addElement(new types.string("DataLinkProtocol"));
		instance.addElement(new types.string("DCZ"));
		instance.addElement(new types.string("DeliveryOption"));
		instance.addElement(new types.DecimalWithUnits("DelayBetweenShots"));
		instance.addElement(new types.string("Department"));
		instance.addElement(new types.string("DeweyDecimalNumber"));
		instance.addElement(new types.string("DialColor"));
		instance.addElement(new types.string("DialWindowMaterialType"));
		instance.addElement(new types.DecimalWithUnits("DigitalZoom"));
		instance.addElement(new types.string("Director"));
		instance.addElement(new types.string("DisplayColorSupport"));
		instance.addElement(new types.DecimalWithUnits("DisplaySize"));
		instance.addElement(new types.nonNegativeInteger("DrumSetPieceQuantity"));
		instance.addElement(new types.nonNegativeInteger("DVDLayers"));
		instance.addElement(new types.string("DVDRWDescription"));
		instance.addElement(new types.nonNegativeInteger("DVDSides"));
		instance.addElement(new types.string("DPCI"));
		instance.addElement(new types.string("EAN"));
		instance.addElement(new types.string("Edition"));
		instance.addElement(new types.string("EducationalFocus"));
		instance.addElement(new types.string("EpisodeSequence"));
		instance.addElement(new types.string("Ethnicity"));
		instance.addElement(new types.string("ESRBAgeRating"));
		instance.addElement(new types.string("ExternalDisplaySupportDescription"));
		instance.addElement(new types.string("FabricType"));
		instance.addElement(new types.string("FaxNumber"));
		instance.addElement(new types.string("Feature"));
		instance.addElement(new types.string("FilmColorType"));
		instance.addElement(new types.StringWithUnits("FirstIssueLeadTime"));
		instance.addElement(new types.string("FlavorName"));
		instance.addElement(new types.string("FloppyDiskDriveDescription"));
		instance.addElement(new types.string("Format"));
		instance.addElement(new types.string("FormFactor"));
		instance.addElement(new types.string("GemType"));
		instance.addElement(new types.string("GemTypeSetElement"));
		instance.addElement(new types.string("Gender"));
		instance.addElement(new types.string("Genre"));
		instance.addElement(new types.string("GLProductGroup"));
		instance.addElement(new types.string("GolfClubFlex"));
		instance.addElement(new types.string("GolfClubLoft"));
		instance.addElement(new types.string("GraphicsCardInterface"));
		instance.addElement(new types.string("GraphicsDescription"));
		instance.addElement(new types.DecimalWithUnits("GraphicsMemorySize"));
		instance.addElement(new types.string("GuitarAttribute"));
		instance.addElement(new types.string("GuitarBridgeSystem"));
		instance.addElement(new types.string("GuitarPickThickness"));
		instance.addElement(new types.string("GuitarPickupConfiguration"));
		instance.addElement(new types.string("HandOrientation"));
		instance.addElement(new types.nonNegativeInteger("HardDiskCount"));
		instance.addElement(new types.DecimalWithUnits("HardDiskSize"));
		instance.addElement(new types.string("HardDiskInterface"));
		instance.addElement(new types.string("HardwarePlatform"));
		instance.addElement(new types.boolean("HasAutoFocus"));
		instance.addElement(new types.boolean("HasBurstMode"));
		instance.addElement(new types.boolean("HasInCameraEditing"));
		instance.addElement(new types.boolean("HasRedEyeReduction"));
		instance.addElement(new types.boolean("HasSelfTimer"));
		instance.addElement(new types.boolean("HasTripodMount"));
		instance.addElement(new types.boolean("HasVideoOut"));
		instance.addElement(new types.boolean("HasViewfinder"));
		instance.addElement(new types.string("HazardousMaterialType"));
		instance.addElement(new types.string("HoursOfOperation"));
		instance.addElement(new types.string("IncludedSoftware"));
		instance.addElement(new types.boolean("IncludesMp3Player"));
		instance.addElement(new types.string("Ingredients"));
		instance.addElement(new types.string("IngredientsSetElement"));
		instance.addElement(new types.string("InstrumentKey"));
		instance.addElement(new types.string("Interest"));
		instance.addElement(new types.boolean("IsAdultProduct"));
		instance.addElement(new types.boolean("IsAutographed"));
		instance.addElement(new types.string("ISBN"));
		instance.addElement(new types.boolean("IsEligibleForTradeIn"));
		instance.addElement(new types.boolean("IsFragile"));
		instance.addElement(new types.boolean("IsLabCreated"));
		instance.addElement(new types.boolean("IsMemorabilia"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("ISOEquivalent"));
		instance.addElement(new types.boolean("IsPreannounce"));
		instance.addElement(new types.string("IssuesPerYear"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("ItemDimensions", "Complex",undefined);
			instance.addElement(new types.DecimalWithUnits("Height"));
			instance.addElement(new types.DecimalWithUnits("Length"));
			instance.addElement(new types.DecimalWithUnits("Weight"));
			instance.addElement(new types.DecimalWithUnits("Width"));
			return instance;
		});

		instance.addElement(new types.string("KeyboardDescription"));
		instance.addElement(new types.string("Label"));
		instance.addElement(new types.string("LanguageName"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Languages", "Complex",undefined);
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("Language", "Complex",undefined);
				instance.addElement(new types.string("Name"));
				instance.addElement(new types.string("Type"));
				instance.addElement(new types.string("AudioFormat"));
				return instance;
			});

			return instance;
		});

		instance.addElement(new types.string("LegalDisclaimer"));
		instance.addElement(new types.string("LensType"));
		instance.addElement(new types.string("LineVoltage"));
		instance.addElement(new types.Price("ListPrice"));
		instance.addElement(new types.string("LongSynopsis"));
		instance.addElement(new types.string("MacroFocusRange"));
		instance.addElement(new types.string("MagazineType"));
		instance.addElement(new types.string("MalletHardness"));
		instance.addElement(new types.string("Manufacturer"));
		instance.addElement(new types.string("ManufacturerLaborWarrantyDescription"));
		instance.addElement(new types.DecimalWithUnits("ManufacturerMaximumAge"));
		instance.addElement(new types.DecimalWithUnits("ManufacturerMinimumAge"));
		instance.addElement(new types.string("ManufacturerPartsWarrantyDescription"));
		instance.addElement(new types.string("MaterialType"));
		instance.addElement(new types.string("MaterialTypeSetElement"));
		instance.addElement(new types.DecimalWithUnits("MaximumAperture"));
		instance.addElement(new types.string("MaximumColorDepth"));
		instance.addElement(new types.DecimalWithUnits("MaximumFocalLength"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("MaximumHighResolutionImages"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("MaximumHorizontalResolution"));
		instance.addElement(new types.string("MaximumLowResolutionImages"));
		instance.addElement(new types.DecimalWithUnits("MaximumResolution"));
		instance.addElement(new types.DecimalWithUnits("MaximumShutterSpeed"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("MaximumVerticalResolution"));
		instance.addElement(new types.DecimalWithUnits("MaximumWeightRecommendation"));
		instance.addElement(new types.string("MediaType"));
		instance.addElement(new types.string("MemorySlotsAvailable"));
		instance.addElement(new types.string("MetalStamp"));
		instance.addElement(new types.string("MetalType"));
		instance.addElement(new types.string("MiniMovieDescription"));
		instance.addElement(new types.DecimalWithUnits("MinimumFocalLength"));
		instance.addElement(new types.DecimalWithUnits("MinimumShutterSpeed"));
		instance.addElement(new types.string("Model"));
		instance.addElement(new types.nonNegativeInteger("ModelYear"));
		instance.addElement(new types.string("ModemDescription"));
		instance.addElement(new types.DecimalWithUnits("MonitorSize"));
		instance.addElement(new types.DecimalWithUnits("MonitorViewableDiagonalSize"));
		instance.addElement(new types.string("MouseDescription"));
		instance.addElement(new types.string("MPN"));
		instance.addElement(new types.string("MusicalStyle"));
		instance.addElement(new types.string("NativeResolution"));
		instance.addElement(new types.string("Neighborhood"));
		instance.addElement(new types.string("NetworkInterfaceDescription"));
		instance.addElement(new types.string("NotebookDisplayTechnology"));
		instance.addElement(new types.string("NotebookPointingDeviceDescription"));
		instance.addElement(new types.nonNegativeInteger("NumberOfDiscs"));
		instance.addElement(new types.nonNegativeInteger("NumberOfIssues"));
		instance.addElement(new types.nonNegativeInteger("NumberOfItems"));
		instance.addElement(new types.nonNegativeInteger("NumberOfKeys"));
		instance.addElement(new types.nonNegativeInteger("NumberOfPages"));
		instance.addElement(new types.nonNegativeInteger("NumberOfPearls"));
		instance.addElement(new types.nonNegativeInteger("NumberOfRapidFireShots"));
		instance.addElement(new types.nonNegativeInteger("NumberOfStones"));
		instance.addElement(new types.nonNegativeInteger("NumberOfStrings"));
		instance.addElement(new types.nonNegativeInteger("NumberOfTracks"));
		instance.addElement(new types.string("OperatingSystem"));
		instance.addElement(new types.DecimalWithUnits("OpticalSensorResolution"));
		instance.addElement(new types.DecimalWithUnits("OpticalZoom"));
		instance.addElement(new types.string("OriginalReleaseDate"));
		instance.addElement(new types.string("OriginalAirDate"));
		instance.addElement(new types.nonNegativeInteger("OutputWattage"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("PackageDimensions", "Complex",undefined);
			instance.addElement(new types.DecimalWithUnits("Height"));
			instance.addElement(new types.DecimalWithUnits("Length"));
			instance.addElement(new types.DecimalWithUnits("Weight"));
			instance.addElement(new types.DecimalWithUnits("Width"));
			return instance;
		});

		instance.addElement(new types.nonNegativeInteger("PackageQuantity"));
		instance.addElement(new types.string("PantLength"));
		instance.addElement(new types.string("PantSize"));
		instance.addElement(new types.string("PearlLustre"));
		instance.addElement(new types.string("PearlMinimumColor"));
		instance.addElement(new types.string("PearlShape"));
		instance.addElement(new types.string("PearlStringingMethod"));
		instance.addElement(new types.string("PearlSurfaceBlemishes"));
		instance.addElement(new types.string("PearlType"));
		instance.addElement(new types.string("PearlUniformity"));
		instance.addElement(new types.string("PhoneNumber"));
		instance.addElement(new types.string("PhotoFlashType"));
		instance.addElement(new types.string("PictureFormat"));
		instance.addElement(new types.string("Platform"));
		instance.addElement(new types.nonNegativeInteger("PriceRating"));
		instance.addElement(new types.string("PrimaryColor"));
		instance.addElement(new types.nonNegativeInteger("ProcessorCount"));
		instance.addElement(new types.string("ProductGroup"));
		instance.addElement(new types.string("ProductSiteLaunchDate"));
		instance.addElement(new types.string("ProductTypeName"));
		instance.addElement(new types.string("ProductTypeSubcategory"));
		instance.addElement(new types.string("PromotionalTag"));
		instance.addElement(new types.string("PublicationDate"));
		instance.addElement(new types.string("Publisher"));
		instance.addElement(new types.string("POBoxShippingExcluded"));
		instance.addElement(new types.string("ReadingLevel"));
		instance.addElement(new types.string("ReturnMethod"));
		instance.addElement(new types.nonNegativeInteger("RecorderTrackCount"));
		instance.addElement(new types.string("RegionCode"));
		instance.addElement(new types.string("RegionOfOrigin"));
		instance.addElement(new types.string("ReturnPolicy"));
		instance.addElement(new types.string("ReleaseDate"));
		instance.addElement(new types.string("RemovableMemory"));
		instance.addElement(new types.string("RemovableStorage"));
		instance.addElement(new types.string("RequiredVoltageRange"));
		instance.addElement(new types.string("ResolutionModes"));
		instance.addElement(new types.string("RingSize"));
		instance.addElement(new types.DecimalWithUnits("RunningTime"));
		instance.addElement(new types.string("ScentName"));
		instance.addElement(new types.string("SeasonSequence"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("SecondaryCacheSize"));
		instance.addElement(new types.string("SettingType"));
		instance.addElement(new types.string("ShaftMaterialType"));
		instance.addElement(new types.string("ShoeSize"));
		instance.addElement(new types.string("ShortSynopsis"));
		instance.addElement(new types.string("Size"));
		instance.addElement(new types.string("SizePerPearl"));
		instance.addElement(new types.string("SkillLevel"));
		instance.addElement(new types.string("SKU"));
		instance.addElement(new types.string("SoldInStores"));
		instance.addElement(new types.string("SoundCardDescription"));
		instance.addElement(new types.nonNegativeInteger("SpeakerCount"));
		instance.addElement(new types.string("SpeakerDescription"));
		instance.addElement(new types.string("SpecialFeatures"));
		instance.addElement(new types.string("StartYear"));
		instance.addElement(new types.string("StoneClarity"));
		instance.addElement(new types.string("StoneColor"));
		instance.addElement(new types.string("StoneCut"));
		instance.addElement(new types.string("StoneShape"));
		instance.addElement(new types.DecimalWithUnits("StoneWeight"));
		instance.addElement(new types.string("Studio"));
		instance.addElement(new types.string("Style"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("SubscriptionLength"));
		instance.addElement(new types.string("SupportedImageType"));
		instance.addElement(new types.string("SupportedMediaSize"));
		instance.addElement(new types.DecimalWithUnits("SystemBusSpeed"));
		instance.addElement(new types.DecimalWithUnits("SystemMemorySizeMax"));
		instance.addElement(new types.DecimalWithUnits("SystemMemorySize"));
		instance.addElement(new types.string("SystemMemoryType"));
		instance.addElement(new types.string("TargetBrand"));
		instance.addElement(new types.string("TellingPageIndicator"));
		instance.addElement(new types.string("TheatricalReleaseDate"));
		instance.addElement(new types.string("Title"));
		instance.addElement(new types.DecimalWithUnits("TotalDiamondWeight"));
		instance.addElement(new types.nonNegativeInteger("TotalExternalBaysFree"));
		instance.addElement(new types.nonNegativeInteger("TotalFirewirePorts"));
		instance.addElement(new types.DecimalWithUnits("TotalGemWeight"));
		instance.addElement(new types.nonNegativeInteger("TotalInternalBaysFree"));
		instance.addElement(new types.DecimalWithUnits("TotalMetalWeight"));
		instance.addElement(new types.nonNegativeInteger("TotalNTSCPALPorts"));
		instance.addElement(new types.nonNegativeInteger("TotalParallelPorts"));
		instance.addElement(new types.nonNegativeInteger("TotalPCCardSlots"));
		instance.addElement(new types.nonNegativeInteger("TotalPCISlotsFree"));
		instance.addElement(new types.nonNegativeInteger("TotalSerialPorts"));
		instance.addElement(new types.nonNegativeInteger("TotalSVideoOutPorts"));
		instance.addElement(new types.nonNegativeInteger("TotalUSB2Ports"));
		instance.addElement(new types.nonNegativeInteger("TotalUSBPorts"));
		instance.addElement(new types.nonNegativeInteger("TotalVGAOutPorts"));
		instance.addElement(new types.string("TrackSequence"));
		instance.addElement(new types.Price("TradeInValue"));
		instance.addElement(new types.string("UPC"));
		instance.addElement(new types.string("VariationDenomination"));
		instance.addElement(new types.string("VariationDescription"));
		instance.addElement(new types.string("Warranty"));
		instance.addElement(new types.string("WatchMovementType"));
		instance.addElement(new types.DecimalWithUnits("WaterResistanceDepth"));
		instance.addElement(new types.Price("WEEETaxValue"));
		instance.addElement(new types.nonNegativeInteger("WirelessMicrophoneFrequency"));
		instance.addElement(new types.string("WXJZ"));
		instance.addElement(new types.string("XCYG"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartItems", "Complex",undefined);
		instance.addElement(new types.Price("SubTotal"));
		instance.addElement(new types.CartItem("CartItem"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("OfferAttributes", "Complex",undefined);
		instance.addElement(new types.string("Condition"));
		instance.addElement(new types.string("SubCondition"));
		instance.addElement(new types.string("ConditionNote"));
		instance.addElement(new types.string("MapPolicy"));
		instance.addElement(new types.boolean("WillShipExpedited"));
		instance.addElement(new types.boolean("WillShipInternational"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("PartBrowseNodeBins", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleMake", "Complex",undefined);
		instance.addElement(new types.string("MakeName"));
		instance.addElement(new types.nonNegativeInteger("MakeId"));
		instance.addElement(new types.string("IsValid"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Arguments", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Argument", "Complex",undefined);
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("TaggedItems", "Complex",undefined);
		instance.addElement(new types.string("DistinctUsers"));
		instance.addElement(new types.string("TotalUsages"));
		instance.addElement(new types.Tagging("FirstTagging"));
		instance.addElement(new types.Tagging("LastTagging"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SellerFeedback", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Feedback", "Complex",undefined);
			instance.addElement(new types.nonNegativeInteger("Rating"));
			instance.addElement(new types.string("Comment"));
			instance.addElement(new types.string("Date"));
			instance.addElement(new types.string("RatedBy"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Seller", "Complex",undefined);
		instance.addElement(new types.string("SellerId"));
		instance.addElement(new types.string("SellerName"));
		instance.addElement(new types.string("SellerLegalName"));
		instance.addElement(new types.string("Nickname"));
		instance.addElement(new types.string("GlancePage"));
		instance.addElement(new types.string("About"));
		instance.addElement(new types.string("MoreAbout"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Location", "Complex",undefined);
			instance.addElement(new types.string("UserDefinedLocation"));
			instance.addElement(new types.string("City"));
			instance.addElement(new types.string("State"));
			instance.addElement(new types.string("Country"));
			return instance;
		});

		instance.addElement(new types.decimal("AverageFeedbackRating"));
		instance.addElement(new types.nonNegativeInteger("TotalFeedback"));
		instance.addElement(new types.nonNegativeInteger("TotalFeedbackPages"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("SellerFeedbackSummary", "Complex",undefined);
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("FeedbackDateRange", "Complex",undefined);
				instance.addElement(new function() {
					var instance = {};
					instance.inheritFrom = types.WsdlObject;
					instance.inheritFrom("SellerFeedbackRating", "Complex",undefined);
					instance.addElement(new types.nonNegativeInteger("Count"));
					instance.addElement(new types.nonNegativeInteger("Percentage"));
					return instance;
				});

				return instance;
			});

			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleModels", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("BrowseNodeLookup", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.BrowseNodeLookupRequest("Shared"));
		instance.addElement(new types.BrowseNodeLookupRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SellerListingLookup", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.SellerListingLookupRequest("Shared"));
		instance.addElement(new types.SellerListingLookupRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ItemLookup", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.ItemLookupRequest("Shared"));
		instance.addElement(new types.ItemLookupRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("EditorialReviews", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleBodyStyle", "Complex",undefined);
		instance.addElement(new types.string("BodyStyleName"));
		instance.addElement(new types.nonNegativeInteger("BodyStyleId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Review", "Complex",undefined);
		instance.addElement(new types.string("ASIN"));
		instance.addElement(new types.decimal("Rating"));
		instance.addElement(new types.nonNegativeInteger("HelpfulVotes"));
		instance.addElement(new types.string("CustomerId"));
		instance.addElement(new types.nonNegativeInteger("TotalVotes"));
		instance.addElement(new types.string("Date"));
		instance.addElement(new types.string("Summary"));
		instance.addElement(new types.string("Content"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("EditorialReview", "Complex",undefined);
		instance.addElement(new types.string("Source"));
		instance.addElement(new types.string("Content"));
		instance.addElement(new types.boolean("IsLinkSuppressed"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartGetResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Tracks", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Disc", "Complex",undefined);
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("Track", "Complex",undefined);
				return instance;
			});

			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ItemLinks", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Bin", "Complex",undefined);
		instance.addElement(new types.string("BinName"));
		instance.addElement(new types.positiveInteger("BinItemCount"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("BinParameter", "Complex",undefined);
			instance.addElement(new types.string("Name"));
			instance.addElement(new types.string("Value"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Tags", "Complex",undefined);
		instance.addElement(new types.string("DistinctTags"));
		instance.addElement(new types.string("DistinctItems"));
		instance.addElement(new types.string("DistinctUsers"));
		instance.addElement(new types.string("TotalUsages"));
		instance.addElement(new types.Tagging("FirstTagging"));
		instance.addElement(new types.Tagging("LastTagging"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("MissingVehicleAttributes", "Complex",undefined);
		instance.addElement(new types.string("ParameterName"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleModel", "Complex",undefined);
		instance.addElement(new types.string("ModelName"));
		instance.addElement(new types.nonNegativeInteger("ModelId"));
		instance.addElement(new types.string("IsValid"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleBrakes", "Complex",undefined);
		instance.addElement(new types.string("BrakesName"));
		instance.addElement(new types.nonNegativeInteger("BrakesId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ListSearchResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SearchBinSet", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("TaggedGuides", "Complex",undefined);
		instance.addElement(new types.string("DistinctUsers"));
		instance.addElement(new types.string("TotalUsages"));
		instance.addElement(new types.Tagging("FirstTagging"));
		instance.addElement(new types.Tagging("LastTagging"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleSearchResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("HelpResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VariationSummary", "Complex",undefined);
		instance.addElement(new types.Price("LowestPrice"));
		instance.addElement(new types.Price("HighestPrice"));
		instance.addElement(new types.Price("LowestSalePrice"));
		instance.addElement(new types.Price("HighestSalePrice"));
		instance.addElement(new types.string("SingleMerchantId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("BrowseNodes", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleSpringTypes", "Complex",undefined);
		instance.addElement(new types.string("SpringTypesName"));
		instance.addElement(new types.nonNegativeInteger("SpringTypesId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Promotion", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Summary", "Complex",undefined);
			instance.addElement(new types.string("PromotionId"));
			instance.addElement(new types.string("Category"));
			instance.addElement(new types.string("StartDate"));
			instance.addElement(new types.string("EndDate"));
			instance.addElement(new types.string("EligibilityRequirementDescription"));
			instance.addElement(new types.string("BenefitDescription"));
			instance.addElement(new types.string("TermsAndConditions"));
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Details", "Complex",undefined);
			instance.addElement(new types.string("MerchantId"));
			instance.addElement(new types.string("OwningMerchantId"));
			instance.addElement(new types.string("PromotionId"));
			instance.addElement(new types.string("PromotionCategory"));
			instance.addElement(new types.string("MerchantPromotionId"));
			instance.addElement(new types.string("GroupClaimCode"));
			instance.addElement(new types.string("CouponCombinationType"));
			instance.addElement(new types.string("StartDate"));
			instance.addElement(new types.string("EndDate"));
			instance.addElement(new types.string("TermsAndConditions"));
			instance.addElement(new types.PromotionEligibilityRequirements("EligibilityRequirements"));
			instance.addElement(new types.PromotionBenefits("Benefits"));
			instance.addElement(new types.PromotionItemApplicability("ItemApplicability"));
			instance.addElement(new types.string("MerchandisingMessage"));
			instance.addElement(new types.string("IconMediaId"));
			instance.addElement(new types.boolean("IsIconMediaIdCustom"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleMakes", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleYear", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("Year"));
		instance.addElement(new types.string("IsValid"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CustomerContentLookupResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("RelatedItem", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ListSearch", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.ListSearchRequest("Shared"));
		instance.addElement(new types.ListSearchRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Cart", "Complex",undefined);
		instance.addElement(new types.string("CartId"));
		instance.addElement(new types.string("HMAC"));
		instance.addElement(new types.string("URLEncodedHMAC"));
		instance.addElement(new types.string("PurchaseURL"));
		instance.addElement(new types.Price("SubTotal"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ListItem", "Complex",undefined);
		instance.addElement(new types.string("ListItemId"));
		instance.addElement(new types.string("DateAdded"));
		instance.addElement(new types.string("Comment"));
		instance.addElement(new types.string("QuantityDesired"));
		instance.addElement(new types.string("QuantityReceived"));
		instance.addElement(new types.string("Priority"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SimilarityLookup", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.SimilarityLookupRequest("Shared"));
		instance.addElement(new types.SimilarityLookupRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Tag", "Complex",undefined);
		instance.addElement(new types.string("Name"));
		instance.addElement(new types.string("TagType"));

		instance.addElement(new types.string("DistinctItems"));
		instance.addElement(new types.string("DistinctUsers"));
		instance.addElement(new types.string("TotalUsages"));
		instance.addElement(new types.Tagging("FirstTagging"));
		instance.addElement(new types.Tagging("LastTagging"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartGet", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.CartGetRequest("Shared"));
		instance.addElement(new types.CartGetRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("OperationInformation", "Complex",undefined);
		instance.addElement(new types.string("Name"));
		instance.addElement(new types.string("Description"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("RequiredParameters", "Complex",undefined);
			instance.addElement(new types.string("Parameter"));
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("AvailableParameters", "Complex",undefined);
			instance.addElement(new types.string("Parameter"));
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("DefaultResponseGroups", "Complex",undefined);
			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("AvailableResponseGroups", "Complex",undefined);
			instance.addElement(new types.string("ResponseGroup"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ItemLink", "Complex",undefined);
		instance.addElement(new types.string("Description"));
		instance.addElement(new types.string("URL"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("HTTPHeaders", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Header", "Complex",undefined);
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("BrowseNode", "Complex",undefined);
		instance.addElement(new types.string("BrowseNodeId"));
		instance.addElement(new types.string("Name"));
		instance.addElement(new types.boolean("IsCategoryRoot"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Properties", "Complex",undefined);
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Children", "Complex",undefined);
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Ancestors", "Complex",undefined);
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SearchInside", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("TotalExcerpts"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Excerpt", "Complex",undefined);
			instance.addElement(new types.string("Checksum"));
			instance.addElement(new types.string("PageType"));
			instance.addElement(new types.string("PageNumber"));
			instance.addElement(new types.string("SequenceNumber"));
			instance.addElement(new types.string("Text"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehiclePartSearch", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.VehiclePartSearchRequest("Shared"));
		instance.addElement(new types.VehiclePartSearchRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Variations", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("TotalVariations"));
		instance.addElement(new types.nonNegativeInteger("TotalVariationPages"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Customer", "Complex",undefined);
		instance.addElement(new types.string("CustomerId"));
		instance.addElement(new types.string("Nickname"));
		instance.addElement(new types.string("Birthday"));
		instance.addElement(new types.string("WishListId"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Location", "Complex",undefined);
			instance.addElement(new types.string("UserDefinedLocation"));
			instance.addElement(new types.string("City"));
			instance.addElement(new types.string("State"));
			instance.addElement(new types.string("Country"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehiclePartSearchResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Transaction", "Complex",undefined);
		instance.addElement(new types.string("TransactionId"));
		instance.addElement(new types.string("SellerId"));
		instance.addElement(new types.string("Condition"));
		instance.addElement(new types.string("TransactionDate"));
		instance.addElement(new types.string("TransactionDateEpoch"));
		instance.addElement(new types.string("SellerName"));
		instance.addElement(new types.string("PayingCustomerId"));
		instance.addElement(new types.string("OrderingCustomerId"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Totals", "Complex",undefined);
			instance.addElement(new types.Price("Total"));
			instance.addElement(new types.Price("Subtotal"));
			instance.addElement(new types.Price("Tax"));
			instance.addElement(new types.Price("ShippingCharge"));
			instance.addElement(new types.Price("Promotion"));
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("TransactionItems", "Complex",undefined);
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Shipments", "Complex",undefined);
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("Shipment", "Complex",undefined);
				instance.addElement(new types.string("Condition"));
				instance.addElement(new types.string("DeliveryMethod"));
				instance.addElement(new function() {
					var instance = {};
					instance.inheritFrom = types.WsdlObject;
					instance.inheritFrom("ShipmentItems", "Complex",undefined);
					instance.addElement(new types.string("TransactionItemId"));
					return instance;
				});

				instance.addElement(new function() {
					var instance = {};
					instance.inheritFrom = types.WsdlObject;
					instance.inheritFrom("Packages", "Complex",undefined);
					instance.addElement(new function() {
						var instance = {};
						instance.inheritFrom = types.WsdlObject;
						instance.inheritFrom("Package", "Complex",undefined);
						instance.addElement(new types.string("TrackingNumber"));
						instance.addElement(new types.string("CarrierName"));
						return instance;
					});

					return instance;
				});

				return instance;
			});

			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleTrim", "Complex",undefined);
		instance.addElement(new types.string("TrimName"));
		instance.addElement(new types.nonNegativeInteger("TrimId"));
		instance.addElement(new types.string("IsValid"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleSearch", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.VehicleSearchRequest("Shared"));
		instance.addElement(new types.VehicleSearchRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ResponseGroupInformation", "Complex",undefined);
		instance.addElement(new types.string("Name"));
		instance.addElement(new types.string("CreationDate"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("ValidOperations", "Complex",undefined);
			instance.addElement(new types.string("Operation"));
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Elements", "Complex",undefined);
			instance.addElement(new types.string("Element"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SavedForLaterItems", "Complex",undefined);
		instance.addElement(new types.Price("SubTotal"));
		instance.addElement(new types.CartItem("SavedForLaterItem"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SearchResultsMap", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("SearchIndex", "Complex",undefined);
			instance.addElement(new types.string("IndexName"));
			instance.addElement(new types.nonNegativeInteger("Results"));
			instance.addElement(new types.nonNegativeInteger("Pages"));
			instance.addElement(new types.positiveInteger("RelevanceRank"));
			instance.addElement(new types.string("ASIN"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("UniversalListItem", "Complex",undefined);
		instance.addElement(new types.string("Title"));
		instance.addElement(new types.string("ProductUrl"));
		instance.addElement(new types.string("ImageUrl"));
		instance.addElement(new types.string("SoldBy"));
		instance.addElement(new types.Price("SavedPrice"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleEngineOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleWheelbase", "Complex",undefined);
		instance.addElement(new types.string("WheelbaseName"));
		instance.addElement(new types.nonNegativeInteger("WheelbaseId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("MultiOperationResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartModify", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.CartModifyRequest("Shared"));
		instance.addElement(new types.CartModifyRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleParts", "Complex",undefined);
		instance.addElement(new types.boolean("IsNext"));
		instance.addElement(new types.boolean("IsPrevious"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleSteering", "Complex",undefined);
		instance.addElement(new types.string("SteeringName"));
		instance.addElement(new types.nonNegativeInteger("SteeringId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ListLookupResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SellerListingLookupResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Offers", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("TotalOffers"));
		instance.addElement(new types.nonNegativeInteger("TotalOfferPages"));
		return instance;
	});

	instance.addElement(new types.string("AudienceRating"));

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("TagLookup", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.TagLookupRequest("Shared"));
		instance.addElement(new types.TagLookupRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Guide", "Complex",undefined);
		instance.addElement(new types.string("GuideId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleDriveType", "Complex",undefined);
		instance.addElement(new types.string("DriveTypeName"));
		instance.addElement(new types.nonNegativeInteger("DriveTypeId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Help", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.HelpRequest("Shared"));
		instance.addElement(new types.HelpRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("TopItemSet", "Complex",undefined);
		instance.addElement(new types.string("Type"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("TopItem", "Complex",undefined);
			instance.addElement(new types.string("ASIN"));
			instance.addElement(new types.string("Title"));
			instance.addElement(new types.string("DetailPageURL"));
			instance.addElement(new types.string("ProductGroup"));
			instance.addElement(new types.string("Author"));
			instance.addElement(new types.string("Artist"));
			instance.addElement(new types.string("Actor"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleDriveTypeOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CustomerContentLookup", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.CustomerContentLookupRequest("Shared"));
		instance.addElement(new types.CustomerContentLookupRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehiclePartLookup", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.VehiclePartLookupRequest("Shared"));
		instance.addElement(new types.VehiclePartLookupRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehiclePartLookupResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("BrowseNodeLookupResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("List", "Complex",undefined);
		instance.addElement(new types.string("ListId"));
		instance.addElement(new types.string("ListURL"));
		instance.addElement(new types.string("RegistryNumber"));
		instance.addElement(new types.string("ListName"));
		instance.addElement(new types.string("ListType"));

		instance.addElement(new types.nonNegativeInteger("TotalItems"));
		instance.addElement(new types.nonNegativeInteger("TotalPages"));
		instance.addElement(new types.string("DateCreated"));
		instance.addElement(new types.string("LastModified"));
		instance.addElement(new types.string("OccasionDate"));
		instance.addElement(new types.string("CustomerName"));
		instance.addElement(new types.string("PartnerName"));
		instance.addElement(new types.string("AdditionalName"));
		instance.addElement(new types.string("Comment"));
		instance.addElement(new types.Image("Image"));
		instance.addElement(new types.decimal("AverageRating"));
		instance.addElement(new types.nonNegativeInteger("TotalVotes"));
		instance.addElement(new types.nonNegativeInteger("TotalTimesRead"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ListLookup", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.ListLookupRequest("Shared"));
		instance.addElement(new types.ListLookupRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleEngine", "Complex",undefined);
		instance.addElement(new types.string("EngineName"));
		instance.addElement(new types.nonNegativeInteger("EngineId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleBodyStyleOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartCreateResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleSpringTypesOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Fitment", "Complex",undefined);
		instance.addElement(new types.string("Year"));
		instance.addElement(new types.string("Make"));
		instance.addElement(new types.string("Model"));
		instance.addElement(new types.string("Trim"));
		instance.addElement(new types.string("Bed"));
		instance.addElement(new types.string("BodyStyle"));
		instance.addElement(new types.string("Brakes"));
		instance.addElement(new types.string("DriveType"));
		instance.addElement(new types.string("Engine"));
		instance.addElement(new types.string("MfrBodyCode"));
		instance.addElement(new types.string("SpringTypes"));
		instance.addElement(new types.string("Steering"));
		instance.addElement(new types.string("Transmission"));
		instance.addElement(new types.string("Wheelbase"));
		instance.addElement(new types.string("Position"));
		instance.addElement(new types.string("Notes"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartClearResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Errors", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Error", "Complex",undefined);
			instance.addElement(new types.string("Code"));
			instance.addElement(new types.string("Message"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ItemSearchResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Sellers", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("TotalResults"));
		instance.addElement(new types.nonNegativeInteger("TotalPages"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("OtherCategoriesSimilarProducts", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("OtherCategoriesSimilarProduct", "Complex",undefined);
			instance.addElement(new types.string("ASIN"));
			instance.addElement(new types.string("Title"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VariationDimensions", "Complex",undefined);
		instance.addElement(new types.string("VariationDimension"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CustomerReviews", "Complex",undefined);
		instance.addElement(new types.decimal("AverageRating"));
		instance.addElement(new types.nonNegativeInteger("TotalReviews"));
		instance.addElement(new types.nonNegativeInteger("TotalReviewPages"));
		return instance;
	});

	instance.addElement(new types.string("DeliveryMethod"));

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleBed", "Complex",undefined);
		instance.addElement(new types.string("BedName"));
		instance.addElement(new types.nonNegativeInteger("BedId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("OfferListing", "Complex",undefined);
		instance.addElement(new types.string("OfferListingId"));
		instance.addElement(new types.string("ExchangeId"));
		instance.addElement(new types.Price("Price"));
		instance.addElement(new types.Price("SalePrice"));
		instance.addElement(new types.Price("AmountSaved"));
		instance.addElement(new types.nonNegativeInteger("PercentageSaved"));
		instance.addElement(new types.string("Availability"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("AvailabilityAttributes", "Complex",undefined);
			instance.addElement(new types.string("AvailabilityType"));
			instance.addElement(new types.boolean("IsPreorder"));
			instance.addElement(new types.integer("MinimumHours"));
			instance.addElement(new types.integer("MaximumHours"));
			return instance;
		});

		instance.addElement(new types.integer("Quantity"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("QuantityRestriction", "Complex",undefined);
			instance.addElement(new types.integer("QuantityLimit"));
			return instance;
		});

		instance.addElement(new types.Address("ISPUStoreAddress"));
		instance.addElement(new types.string("ISPUStoreHours"));
		instance.addElement(new types.boolean("IsEligibleForSuperSaverShipping"));
		instance.addElement(new types.boolean("IsEligibleForPrime"));
		instance.addElement(new types.boolean("IsFulfilledByAmazon"));
		instance.addElement(new types.boolean("IsMapViolated"));
		instance.addElement(new types.string("SalesRestriction"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("ShippingCharge", "Complex",undefined);
			instance.addElement(new types.string("ShippingType"));
			instance.addElement(new types.boolean("IsRateTaxInclusive"));
			instance.addElement(new types.Price("ShippingPrice"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("TagLookupResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("FitmentAttributes", "Complex",undefined);
		instance.addElement(new types.string("FitmentAttribute"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SearchBinSets", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("OperationRequest", "Complex",undefined);
		instance.addElement(new types.string("RequestId"));
		instance.addElement(new types.float("RequestProcessingTime"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("TaggedListmaniaLists", "Complex",undefined);
		instance.addElement(new types.string("DistinctUsers"));
		instance.addElement(new types.string("TotalUsages"));
		instance.addElement(new types.Tagging("FirstTagging"));
		instance.addElement(new types.Tagging("LastTagging"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("MultiOperation", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SimilarityLookupResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SellerLookup", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.SellerLookupRequest("Shared"));
		instance.addElement(new types.SellerLookupRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Merchant", "Complex",undefined);
		instance.addElement(new types.string("MerchantId"));
		instance.addElement(new types.string("Name"));
		instance.addElement(new types.string("GlancePage"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Location", "Complex",undefined);
			instance.addElement(new types.string("CountryCode"));
			instance.addElement(new types.string("StateCode"));
			return instance;
		});

		instance.addElement(new types.decimal("AverageFeedbackRating"));
		instance.addElement(new types.nonNegativeInteger("TotalFeedback"));
		instance.addElement(new types.nonNegativeInteger("TotalFeedbackPages"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("LoyaltyPoints", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("Points"));
		instance.addElement(new types.Price("TypicalRedemptionValue"));
		return instance;
	});

	instance.addElement(new types.string("Condition"));

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleBedOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("RelatedItems", "Complex",undefined);
		instance.addElement(new types.string("Relationship"));

		instance.addElement(new types.string("RelationshipType"));
		instance.addElement(new types.nonNegativeInteger("RelatedItemCount"));
		instance.addElement(new types.nonNegativeInteger("RelatedItemPageCount"));
		instance.addElement(new types.nonNegativeInteger("RelatedItemPage"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Customers", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("TotalResults"));
		instance.addElement(new types.nonNegativeInteger("TotalPages"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Reviewer", "Complex",undefined);
		instance.addElement(new types.string("CustomerId"));
		instance.addElement(new types.string("Name"));
		instance.addElement(new types.string("Nickname"));
		instance.addElement(new types.string("Location"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("TopSellers", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("TopSeller", "Complex",undefined);
			instance.addElement(new types.string("ASIN"));
			instance.addElement(new types.string("Title"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Lists", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("TotalResults"));
		instance.addElement(new types.nonNegativeInteger("TotalPages"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Offer", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleYears", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Property", "Complex",undefined);
		instance.addElement(new types.string("Name"));
		instance.addElement(new types.string("Value"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Item", "Complex",undefined);
		instance.addElement(new types.string("ASIN"));
		instance.addElement(new types.string("ParentASIN"));
		instance.addElement(new types.string("DetailPageURL"));
		instance.addElement(new types.string("SalesRank"));
		instance.addElement(new types.Image("SmallImage"));
		instance.addElement(new types.Image("MediumImage"));
		instance.addElement(new types.Image("LargeImage"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("ImageSets", "Complex",undefined);
			instance.addElement(new types.string("MerchantId"));
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("VariationAttributes", "Complex",undefined);
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Subjects", "Complex",undefined);
			instance.addElement(new types.string("Subject"));
			return instance;
		});

		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("AlternateVersions", "Complex",undefined);
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("AlternateVersion", "Complex",undefined);
				instance.addElement(new types.string("ASIN"));
				instance.addElement(new types.string("Title"));
				instance.addElement(new types.string("Binding"));
				return instance;
			});

			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("NewReleases", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("NewRelease", "Complex",undefined);
			instance.addElement(new types.string("ASIN"));
			instance.addElement(new types.string("Title"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartAddResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleBrakesOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ImageSet", "Complex",undefined);
		instance.addElement(new types.Image("SwatchImage"));
		instance.addElement(new types.Image("SmallImage"));
		instance.addElement(new types.Image("ThumbnailImage"));
		instance.addElement(new types.Image("TinyImage"));
		instance.addElement(new types.Image("MediumImage"));
		instance.addElement(new types.Image("LargeImage"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SellerListing", "Complex",undefined);
		instance.addElement(new types.string("ExchangeId"));
		instance.addElement(new types.string("ListingId"));
		instance.addElement(new types.string("ASIN"));
		instance.addElement(new types.string("SKU"));
		instance.addElement(new types.string("UPC"));
		instance.addElement(new types.string("EAN"));
		instance.addElement(new types.boolean("WillShipExpedited"));
		instance.addElement(new types.boolean("WillShipInternational"));
		instance.addElement(new types.string("Title"));
		instance.addElement(new types.Price("Price"));
		instance.addElement(new types.string("StartDate"));
		instance.addElement(new types.string("EndDate"));
		instance.addElement(new types.string("Status"));
		instance.addElement(new types.string("Quantity"));
		instance.addElement(new types.string("Condition"));
		instance.addElement(new types.string("SubCondition"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehiclePartFit", "Complex",undefined);
		instance.addElement(new types.string("IsFit"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Fitments", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("TotalFitments"));
		instance.addElement(new types.nonNegativeInteger("TotalPages"));
		instance.addElement(new types.string("FitmentAttributes"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleTrims", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleMfrBodyCode", "Complex",undefined);
		instance.addElement(new types.string("MfrBodyCodeName"));
		instance.addElement(new types.nonNegativeInteger("MfrBodyCodeId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartAdd", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.CartAddRequest("Shared"));
		instance.addElement(new types.CartAddRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Items", "Complex",undefined);
		instance.addElement(new types.string("Qid"));
		instance.addElement(new types.string("EngineQuery"));
		instance.addElement(new types.nonNegativeInteger("TotalResults"));
		instance.addElement(new types.nonNegativeInteger("TotalPages"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ItemLookupResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VariationAttribute", "Complex",undefined);
		instance.addElement(new types.string("Name"));
		instance.addElement(new types.string("Value"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartModifyResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Promotions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("TransactionItem", "Complex",undefined);
		instance.addElement(new types.string("TransactionItemId"));
		instance.addElement(new types.string("Quantity"));
		instance.addElement(new types.Price("UnitPrice"));
		instance.addElement(new types.Price("TotalPrice"));
		instance.addElement(new types.string("ASIN"));
		instance.addElement(new types.string("SKU"));
		instance.addElement(new types.string("Title"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("ChildTransactionItems", "Complex",undefined);
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleTransmissionOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Accessories", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Accessory", "Complex",undefined);
			instance.addElement(new types.string("ASIN"));
			instance.addElement(new types.string("Title"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ItemSearch", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.ItemSearchRequest("Shared"));
		instance.addElement(new types.ItemSearchRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Information", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleWheelbaseOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("ListmaniaLists", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("ListmaniaList", "Complex",undefined);
			instance.addElement(new types.string("ListId"));
			instance.addElement(new types.string("ListName"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CartCreate", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.CartCreateRequest("Shared"));
		instance.addElement(new types.CartCreateRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleMfrBodyCodeOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SellerListingSearchResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SimilarViewedProducts", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("SimilarViewedProduct", "Complex",undefined);
			instance.addElement(new types.string("ASIN"));
			instance.addElement(new types.string("Title"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CustomerContentSearchResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SimilarProducts", "Complex",undefined);
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("SimilarProduct", "Complex",undefined);
			instance.addElement(new types.string("ASIN"));
			instance.addElement(new types.string("Title"));
			return instance;
		});

		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("PartBrandBins", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleTransmission", "Complex",undefined);
		instance.addElement(new types.string("TransmissionName"));
		instance.addElement(new types.nonNegativeInteger("TransmissionId"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("VehicleSteeringOptions", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("OfferSummary", "Complex",undefined);
		instance.addElement(new types.Price("LowestNewPrice"));
		instance.addElement(new types.Price("LowestUsedPrice"));
		instance.addElement(new types.Price("LowestCollectiblePrice"));
		instance.addElement(new types.Price("LowestRefurbishedPrice"));
		instance.addElement(new types.string("TotalNew"));
		instance.addElement(new types.string("TotalUsed"));
		instance.addElement(new types.string("TotalCollectible"));
		instance.addElement(new types.string("TotalRefurbished"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Transactions", "Complex",undefined);
		instance.addElement(new types.nonNegativeInteger("TotalResults"));
		instance.addElement(new types.nonNegativeInteger("TotalPages"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("TransactionLookup", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.TransactionLookupRequest("Shared"));
		instance.addElement(new types.TransactionLookupRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CorrectedQuery", "Complex",undefined);
		instance.addElement(new types.string("Keywords"));
		instance.addElement(new types.string("Message"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Request", "Complex",undefined);
		instance.addElement(new types.string("IsValid"));
		instance.addElement(new types.HelpRequest("HelpRequest"));
		instance.addElement(new types.BrowseNodeLookupRequest("BrowseNodeLookupRequest"));
		instance.addElement(new types.ItemSearchRequest("ItemSearchRequest"));
		instance.addElement(new types.ItemLookupRequest("ItemLookupRequest"));
		instance.addElement(new types.ListSearchRequest("ListSearchRequest"));
		instance.addElement(new types.ListLookupRequest("ListLookupRequest"));
		instance.addElement(new types.CustomerContentSearchRequest("CustomerContentSearchRequest"));
		instance.addElement(new types.CustomerContentLookupRequest("CustomerContentLookupRequest"));
		instance.addElement(new types.SimilarityLookupRequest("SimilarityLookupRequest"));
		instance.addElement(new types.CartGetRequest("CartGetRequest"));
		instance.addElement(new types.CartAddRequest("CartAddRequest"));
		instance.addElement(new types.CartCreateRequest("CartCreateRequest"));
		instance.addElement(new types.CartModifyRequest("CartModifyRequest"));
		instance.addElement(new types.CartClearRequest("CartClearRequest"));
		instance.addElement(new types.TransactionLookupRequest("TransactionLookupRequest"));
		instance.addElement(new types.SellerListingSearchRequest("SellerListingSearchRequest"));
		instance.addElement(new types.SellerListingLookupRequest("SellerListingLookupRequest"));
		instance.addElement(new types.SellerLookupRequest("SellerLookupRequest"));
		instance.addElement(new types.TagLookupRequest("TagLookupRequest"));
		instance.addElement(new types.VehicleSearchRequest("VehicleSearchRequest"));
		instance.addElement(new types.VehiclePartSearchRequest("VehiclePartSearchRequest"));
		instance.addElement(new types.VehiclePartLookupRequest("VehiclePartLookupRequest"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("MerchantItemAttributes", "Complex",undefined);
		instance.addElement(new types.string("Actor"));
		instance.addElement(new types.Address("Address"));
		instance.addElement(new types.DecimalWithUnits("AmazonMaximumAge"));
		instance.addElement(new types.DecimalWithUnits("AmazonMinimumAge"));
		instance.addElement(new types.string("ApertureModes"));
		instance.addElement(new types.string("Artist"));
		instance.addElement(new types.string("AspectRatio"));
		instance.addElement(new types.string("AssemblyInstructions"));
		instance.addElement(new types.string("AssemblyRequired"));
		instance.addElement(new types.string("AudienceRating"));
		instance.addElement(new types.string("AudioFormat"));
		instance.addElement(new types.string("Author"));
		instance.addElement(new types.string("BackFinding"));
		instance.addElement(new types.string("BandMaterialType"));
		instance.addElement(new types.string("BatteriesIncluded"));
		instance.addElement(new types.string("BatteriesRequired"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("Batteries"));
		instance.addElement(new types.string("BatteryDescription"));
		instance.addElement(new types.string("BatteryType"));
		instance.addElement(new types.string("BezelMaterialType"));
		instance.addElement(new types.string("Binding"));
		instance.addElement(new types.string("Brand"));
		instance.addElement(new types.string("CalendarType"));
		instance.addElement(new types.string("CameraManualFeatures"));
		instance.addElement(new types.DecimalWithUnits("CaseDiameter"));
		instance.addElement(new types.string("CaseMaterialType"));
		instance.addElement(new types.DecimalWithUnits("CaseThickness"));
		instance.addElement(new types.string("CaseType"));
		instance.addElement(new types.string("CatalogNumber"));
		instance.addElement(new types.string("CDRWDescription"));
		instance.addElement(new types.string("ChainType"));
		instance.addElement(new types.string("ClaspType"));
		instance.addElement(new types.string("ClothingSize"));
		instance.addElement(new types.string("Color"));
		instance.addElement(new types.string("Compatibility"));
		instance.addElement(new types.string("ComputerHardwareType"));
		instance.addElement(new types.string("ComputerPlatform"));
		instance.addElement(new types.string("Connectivity"));
		instance.addElement(new types.DecimalWithUnits("ContinuousShootingSpeed"));
		instance.addElement(new types.string("Country"));
		instance.addElement(new types.string("CountryOfOrigin"));
		instance.addElement(new types.string("CPUManufacturer"));
		instance.addElement(new types.DecimalWithUnits("CPUSpeed"));
		instance.addElement(new types.string("CPUType"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Creator", "Complex",undefined);
			return instance;
		});

		instance.addElement(new types.string("Cuisine"));
		instance.addElement(new types.string("Customizable"));
		instance.addElement(new types.DecimalWithUnits("DelayBetweenShots"));
		instance.addElement(new types.string("DeliveryOption"));
		instance.addElement(new types.string("Department"));
		instance.addElement(new types.string("Description"));
		instance.addElement(new types.string("DeweyDecimalNumber"));
		instance.addElement(new types.string("DialColor"));
		instance.addElement(new types.string("DialWindowMaterialType"));
		instance.addElement(new types.DecimalWithUnits("DigitalZoom"));
		instance.addElement(new types.string("Director"));
		instance.addElement(new types.DecimalWithUnits("DisplaySize"));
		instance.addElement(new types.nonNegativeInteger("DrumSetPieceQuantity"));
		instance.addElement(new types.nonNegativeInteger("DVDLayers"));
		instance.addElement(new types.string("DVDRWDescription"));
		instance.addElement(new types.nonNegativeInteger("DVDSides"));
		instance.addElement(new types.string("DPCI"));
		instance.addElement(new types.string("EAN"));
		instance.addElement(new types.string("Edition"));
		instance.addElement(new types.string("ESRBAgeRating"));
		instance.addElement(new types.string("ExternalDisplaySupportDescription"));
		instance.addElement(new types.string("FabricType"));
		instance.addElement(new types.string("FaxNumber"));
		instance.addElement(new types.string("Feature"));
		instance.addElement(new types.StringWithUnits("FirstIssueLeadTime"));
		instance.addElement(new types.string("FloppyDiskDriveDescription"));
		instance.addElement(new types.string("Format"));
		instance.addElement(new types.Price("FixedShippingCharge"));
		instance.addElement(new types.string("GemType"));
		instance.addElement(new types.string("GraphicsCardInterface"));
		instance.addElement(new types.string("GraphicsDescription"));
		instance.addElement(new types.DecimalWithUnits("GraphicsMemorySize"));
		instance.addElement(new types.string("GuitarAttribute"));
		instance.addElement(new types.string("GuitarBridgeSystem"));
		instance.addElement(new types.string("GuitarPickThickness"));
		instance.addElement(new types.string("GuitarPickupConfiguration"));
		instance.addElement(new types.nonNegativeInteger("HardDiskCount"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("HardDiskSize"));
		instance.addElement(new types.boolean("HasAutoFocus"));
		instance.addElement(new types.boolean("HasBurstMode"));
		instance.addElement(new types.boolean("HasInCameraEditing"));
		instance.addElement(new types.boolean("HasRedEyeReduction"));
		instance.addElement(new types.boolean("HasSelfTimer"));
		instance.addElement(new types.boolean("HasTripodMount"));
		instance.addElement(new types.boolean("HasVideoOut"));
		instance.addElement(new types.boolean("HasViewfinder"));
		instance.addElement(new types.string("HazardousMaterialType"));
		instance.addElement(new types.string("HoursOfOperation"));
		instance.addElement(new types.string("IncludedSoftware"));
		instance.addElement(new types.boolean("IncludesMp3Player"));
		instance.addElement(new types.string("Indications"));
		instance.addElement(new types.string("Ingredients"));
		instance.addElement(new types.string("IngredientsSetElement"));
		instance.addElement(new types.string("InstrumentKey"));
		instance.addElement(new types.boolean("IsAutographed"));
		instance.addElement(new types.string("ISBN"));
		instance.addElement(new types.boolean("IsEmailNotifyAvailable"));
		instance.addElement(new types.boolean("IsFragile"));
		instance.addElement(new types.boolean("IsLabCreated"));
		instance.addElement(new types.boolean("IsMemorabilia"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("ISOEquivalent"));
		instance.addElement(new types.string("IssuesPerYear"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("ItemDimensions", "Complex",undefined);
			instance.addElement(new types.DecimalWithUnits("Height"));
			instance.addElement(new types.DecimalWithUnits("Length"));
			instance.addElement(new types.DecimalWithUnits("Weight"));
			instance.addElement(new types.DecimalWithUnits("Width"));
			return instance;
		});

		instance.addElement(new types.string("KeyboardDescription"));
		instance.addElement(new types.string("Label"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("Languages", "Complex",undefined);
			instance.addElement(new function() {
				var instance = {};
				instance.inheritFrom = types.WsdlObject;
				instance.inheritFrom("Language", "Complex",undefined);
				instance.addElement(new types.string("Name"));
				instance.addElement(new types.string("Type"));
				instance.addElement(new types.string("AudioFormat"));
				return instance;
			});

			return instance;
		});

		instance.addElement(new types.string("LegalDisclaimer"));
		instance.addElement(new types.string("LineVoltage"));
		instance.addElement(new types.Price("ListPrice"));
		instance.addElement(new types.string("MacroFocusRange"));
		instance.addElement(new types.string("MagazineType"));
		instance.addElement(new types.string("MalletHardness"));
		instance.addElement(new types.string("Manufacturer"));
		instance.addElement(new types.string("ManufacturerLaborWarrantyDescription"));
		instance.addElement(new types.DecimalWithUnits("ManufacturerMaximumAge"));
		instance.addElement(new types.DecimalWithUnits("ManufacturerMinimumAge"));
		instance.addElement(new types.string("ManufacturerPartsWarrantyDescription"));
		instance.addElement(new types.string("MaterialType"));
		instance.addElement(new types.DecimalWithUnits("MaximumAperture"));
		instance.addElement(new types.string("MaximumColorDepth"));
		instance.addElement(new types.DecimalWithUnits("MaximumFocalLength"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("MaximumHighResolutionImages"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("MaximumHorizontalResolution"));
		instance.addElement(new types.string("MaximumLowResolutionImages"));
		instance.addElement(new types.DecimalWithUnits("MaximumResolution"));
		instance.addElement(new types.DecimalWithUnits("MaximumShutterSpeed"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("MaximumVerticalResolution"));
		instance.addElement(new types.DecimalWithUnits("MaximumWeightRecommendation"));
		instance.addElement(new types.nonNegativeInteger("MemorySlotsAvailable"));
		instance.addElement(new types.string("MetalStamp"));
		instance.addElement(new types.string("MetalType"));
		instance.addElement(new types.string("MiniMovieDescription"));
		instance.addElement(new types.Price("MinimumAdvertisedPrice"));
		instance.addElement(new types.DecimalWithUnits("MinimumFocalLength"));
		instance.addElement(new types.DecimalWithUnits("MinimumShutterSpeed"));
		instance.addElement(new types.string("Model"));
		instance.addElement(new types.nonNegativeInteger("ModelYear"));
		instance.addElement(new types.string("ModemDescription"));
		instance.addElement(new types.DecimalWithUnits("MonitorSize"));
		instance.addElement(new types.DecimalWithUnits("MonitorViewableDiagonalSize"));
		instance.addElement(new types.string("MouseDescription"));
		instance.addElement(new types.string("MPN"));
		instance.addElement(new types.string("MusicalStyle"));
		instance.addElement(new types.string("NativeResolution"));
		instance.addElement(new types.string("Neighborhood"));
		instance.addElement(new types.string("NetworkInterfaceDescription"));
		instance.addElement(new types.string("NotebookDisplayTechnology"));
		instance.addElement(new types.string("NotebookPointingDeviceDescription"));
		instance.addElement(new types.nonNegativeInteger("NumberOfDiscs"));
		instance.addElement(new types.nonNegativeInteger("NumberOfIssues"));
		instance.addElement(new types.nonNegativeInteger("NumberOfItems"));
		instance.addElement(new types.nonNegativeInteger("NumberOfKeys"));
		instance.addElement(new types.nonNegativeInteger("NumberOfPages"));
		instance.addElement(new types.nonNegativeInteger("NumberOfPearls"));
		instance.addElement(new types.nonNegativeInteger("NumberOfRapidFireShots"));
		instance.addElement(new types.nonNegativeInteger("NumberOfStones"));
		instance.addElement(new types.nonNegativeInteger("NumberOfStrings"));
		instance.addElement(new types.nonNegativeInteger("NumberOfTracks"));
		instance.addElement(new types.DecimalWithUnits("OpticalZoom"));
		instance.addElement(new types.string("OriginalReleaseDate"));
		instance.addElement(new types.nonNegativeInteger("OutputWattage"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("PackageDimensions", "Complex",undefined);
			instance.addElement(new types.DecimalWithUnits("Height"));
			instance.addElement(new types.DecimalWithUnits("Length"));
			instance.addElement(new types.DecimalWithUnits("Weight"));
			instance.addElement(new types.DecimalWithUnits("Width"));
			return instance;
		});

		instance.addElement(new types.string("PearlLustre"));
		instance.addElement(new types.string("PearlMinimumColor"));
		instance.addElement(new types.string("PearlShape"));
		instance.addElement(new types.string("PearlStringingMethod"));
		instance.addElement(new types.string("PearlSurfaceBlemishes"));
		instance.addElement(new types.string("PearlType"));
		instance.addElement(new types.string("PearlUniformity"));
		instance.addElement(new types.string("PhoneNumber"));
		instance.addElement(new types.string("PhotoFlashType"));
		instance.addElement(new types.string("PictureFormat"));
		instance.addElement(new types.string("Platform"));
		instance.addElement(new types.nonNegativeInteger("PriceRating"));
		instance.addElement(new types.nonNegativeInteger("ProcessorCount"));
		instance.addElement(new types.string("ProductGroup"));
		instance.addElement(new types.string("PromotionalTag"));
		instance.addElement(new types.string("POBoxShippingExcluded"));
		instance.addElement(new types.string("PublicationDate"));
		instance.addElement(new types.string("Publisher"));
		instance.addElement(new types.string("PurchasingChannel"));
		instance.addElement(new types.string("ReadingLevel"));
		instance.addElement(new types.nonNegativeInteger("RecorderTrackCount"));
		instance.addElement(new types.string("RegionCode"));
		instance.addElement(new types.string("RegionOfOrigin"));
		instance.addElement(new types.string("ReleaseDate"));
		instance.addElement(new types.string("ReturnMethod"));
		instance.addElement(new types.string("RemovableMemory"));
		instance.addElement(new types.string("ResolutionModes"));
		instance.addElement(new types.string("ReturnPolicy"));
		instance.addElement(new types.string("RingSize"));
		instance.addElement(new types.string("SafetyWarning"));
		instance.addElement(new types.string("SalesRestriction"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("SecondaryCacheSize"));
		instance.addElement(new types.string("SettingType"));
		instance.addElement(new types.string("Size"));
		instance.addElement(new types.string("SKU"));
		instance.addElement(new types.string("SoldInStores"));
		instance.addElement(new types.string("SizePerPearl"));
		instance.addElement(new types.string("SkillLevel"));
		instance.addElement(new types.string("SoundCardDescription"));
		instance.addElement(new types.nonNegativeInteger("SpeakerCount"));
		instance.addElement(new types.string("SpeakerDescription"));
		instance.addElement(new types.string("SpecialFeatures"));
		instance.addElement(new types.string("StoneClarity"));
		instance.addElement(new types.string("StoneColor"));
		instance.addElement(new types.string("StoneCut"));
		instance.addElement(new types.string("StoneShape"));
		instance.addElement(new types.DecimalWithUnits("StoneWeight"));
		instance.addElement(new types.string("Studio"));
		instance.addElement(new types.NonNegativeIntegerWithUnits("SubscriptionLength"));
		instance.addElement(new types.string("SupportedImageType"));
		instance.addElement(new types.DecimalWithUnits("SystemBusSpeed"));
		instance.addElement(new types.DecimalWithUnits("SystemMemorySizeMax"));
		instance.addElement(new types.DecimalWithUnits("SystemMemorySize"));
		instance.addElement(new types.string("SystemMemoryType"));
		instance.addElement(new types.string("TellingPageIndicator"));
		instance.addElement(new types.string("TheatricalReleaseDate"));
		instance.addElement(new types.string("Title"));
		instance.addElement(new types.DecimalWithUnits("TotalDiamondWeight"));
		instance.addElement(new types.nonNegativeInteger("TotalExternalBaysFree"));
		instance.addElement(new types.nonNegativeInteger("TotalFirewirePorts"));
		instance.addElement(new types.DecimalWithUnits("TotalGemWeight"));
		instance.addElement(new types.nonNegativeInteger("TotalInternalBaysFree"));
		instance.addElement(new types.DecimalWithUnits("TotalMetalWeight"));
		instance.addElement(new types.nonNegativeInteger("TotalNTSCPALPorts"));
		instance.addElement(new types.nonNegativeInteger("TotalParallelPorts"));
		instance.addElement(new types.nonNegativeInteger("TotalPCCardSlots"));
		instance.addElement(new types.nonNegativeInteger("TotalPCISlotsFree"));
		instance.addElement(new types.nonNegativeInteger("TotalSerialPorts"));
		instance.addElement(new types.nonNegativeInteger("TotalSVideoOutPorts"));
		instance.addElement(new types.nonNegativeInteger("TotalUSB2Ports"));
		instance.addElement(new types.nonNegativeInteger("TotalUSBPorts"));
		instance.addElement(new types.nonNegativeInteger("TotalVGAOutPorts"));
		instance.addElement(new types.string("UPC"));
		instance.addElement(new types.string("VariationDenomination"));
		instance.addElement(new types.string("VariationDescription"));
		instance.addElement(new function() {
			var instance = {};
			instance.inheritFrom = types.WsdlObject;
			instance.inheritFrom("VendorRebate", "Complex",undefined);
			instance.addElement(new types.string("Type"));
			instance.addElement(new types.string("StartDate"));
			instance.addElement(new types.string("EndDate"));
			return instance;
		});

		instance.addElement(new types.string("Warranty"));
		instance.addElement(new types.string("WatchMovementType"));
		instance.addElement(new types.string("WebsiteBuyability"));
		instance.addElement(new types.DecimalWithUnits("WaterResistanceDepth"));
		instance.addElement(new types.nonNegativeInteger("WirelessMicrophoneFrequency"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("Part", "Complex",undefined);
		instance.addElement(new types.boolean("HasPartCompatibility"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("TransactionLookupResponse", "Complex",undefined);
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("CustomerContentSearch", "Complex",undefined);
		instance.addElement(new types.string("MarketplaceDomain"));
		instance.addElement(new types.string("AWSAccessKeyId"));
		instance.addElement(new types.string("SubscriptionId"));
		instance.addElement(new types.string("AssociateTag"));
		instance.addElement(new types.string("Validate"));
		instance.addElement(new types.string("XMLEscaping"));
		instance.addElement(new types.CustomerContentSearchRequest("Shared"));
		instance.addElement(new types.CustomerContentSearchRequest("Request"));
		return instance;
	});

	instance.addElement(new function() {
		var instance = {};
		instance.inheritFrom = types.WsdlObject;
		instance.inheritFrom("SellerLookupResponse", "Complex",undefined);
		return instance;
	});

	return instance;
})();


AWSECommerceService = {
	// namespace definition works on all services avaiable
	// "/definitions/@targetNamespace"
	namespace: "http://webservices.amazon.com/AWSECommerceService/2010-04-01",

	AWSECommerceServicePort: {

		// Address for this specific service
		// "/definitions/service/port/soap:adress/@location" 
		address: "https://ecs.amazonaws.com/onca/soap?Service=AWSECommerceService",

		soapVersion: "1.1",
		// We need to define which binding is associated with this service
		// "/definitions/service/port/@binding" == "/definitions/binding/@name"

		// An association between the binding chosen and a portType must be done to match the service operations 
		// "/definitions/binding/@type" == "/definitions/portType/@name"

		// We have to build a function for each operation inside the binding and the portType
		// 

		// The input and output parameters are located in each message defined at the operation tags input and output  
		// "/definitions/portType/operation/input/@message"
		// "/definitions/portType/operation/output/@message"
		// "/definitions/message/part/@name"

		// functionName:		"/definitions/binding/operation/@name"
		// body:				"/definitions/message/part/@name"
		// outMethod			"Input from the user"
		// operation: 			"/definitions/binding/operation/@name"
		// action:				"/definitions/binding/operation/soap:operation/@soapAction"
		// outParam:			"New object for the particular function"

		Help: function (body, outMethod) {
			var operation = "Help";
			var output = "HelpResponse";
			var action = "http://soap.amazon.com/Help";
			var outParam = Schema.getAAttr("HelpResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		ItemSearch: function (body, outMethod) {
			var operation = "ItemSearch";
			var output = "ItemSearchResponse";
			var action = "http://soap.amazon.com/ItemSearch";
			var outParam = Schema.getAAttr("ItemSearchResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		ItemLookup: function (body, outMethod) {
			var operation = "ItemLookup";
			var output = "ItemLookupResponse";
			var action = "http://soap.amazon.com/ItemLookup";
			var outParam = Schema.getAAttr("ItemLookupResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		BrowseNodeLookup: function (body, outMethod) {
			var operation = "BrowseNodeLookup";
			var output = "BrowseNodeLookupResponse";
			var action = "http://soap.amazon.com/BrowseNodeLookup";
			var outParam = Schema.getAAttr("BrowseNodeLookupResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		ListSearch: function (body, outMethod) {
			var operation = "ListSearch";
			var output = "ListSearchResponse";
			var action = "http://soap.amazon.com/ListSearch";
			var outParam = Schema.getAAttr("ListSearchResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		ListLookup: function (body, outMethod) {
			var operation = "ListLookup";
			var output = "ListLookupResponse";
			var action = "http://soap.amazon.com/ListLookup";
			var outParam = Schema.getAAttr("ListLookupResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		CustomerContentSearch: function (body, outMethod) {
			var operation = "CustomerContentSearch";
			var output = "CustomerContentSearchResponse";
			var action = "http://soap.amazon.com/CustomerContentSearch";
			var outParam = Schema.getAAttr("CustomerContentSearchResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		CustomerContentLookup: function (body, outMethod) {
			var operation = "CustomerContentLookup";
			var output = "CustomerContentLookupResponse";
			var action = "http://soap.amazon.com/CustomerContentLookup";
			var outParam = Schema.getAAttr("CustomerContentLookupResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		SimilarityLookup: function (body, outMethod) {
			var operation = "SimilarityLookup";
			var output = "SimilarityLookupResponse";
			var action = "http://soap.amazon.com/SimilarityLookup";
			var outParam = Schema.getAAttr("SimilarityLookupResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		SellerLookup: function (body, outMethod) {
			var operation = "SellerLookup";
			var output = "SellerLookupResponse";
			var action = "http://soap.amazon.com/SellerLookup";
			var outParam = Schema.getAAttr("SellerLookupResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		CartGet: function (body, outMethod) {
			var operation = "CartGet";
			var output = "CartGetResponse";
			var action = "http://soap.amazon.com/CartGet";
			var outParam = Schema.getAAttr("CartGetResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		CartCreate: function (body, outMethod) {
			var operation = "CartCreate";
			var output = "CartCreateResponse";
			var action = "http://soap.amazon.com/CartCreate";
			var outParam = Schema.getAAttr("CartCreateResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		CartAdd: function (body, outMethod) {
			var operation = "CartAdd";
			var output = "CartAddResponse";
			var action = "http://soap.amazon.com/CartAdd";
			var outParam = Schema.getAAttr("CartAddResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		CartModify: function (body, outMethod) {
			var operation = "CartModify";
			var output = "CartModifyResponse";
			var action = "http://soap.amazon.com/CartModify";
			var outParam = Schema.getAAttr("CartModifyResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		CartClear: function (body, outMethod) {
			var operation = "CartClear";
			var output = "CartClearResponse";
			var action = "http://soap.amazon.com/CartClear";
			var outParam = Schema.getAAttr("CartClearResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		TransactionLookup: function (body, outMethod) {
			var operation = "TransactionLookup";
			var output = "TransactionLookupResponse";
			var action = "http://soap.amazon.com/TransactionLookup";
			var outParam = Schema.getAAttr("TransactionLookupResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		SellerListingSearch: function (body, outMethod) {
			var operation = "SellerListingSearch";
			var output = "SellerListingSearchResponse";
			var action = "http://soap.amazon.com/SellerListingSearch";
			var outParam = Schema.getAAttr("SellerListingSearchResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		SellerListingLookup: function (body, outMethod) {
			var operation = "SellerListingLookup";
			var output = "SellerListingLookupResponse";
			var action = "http://soap.amazon.com/SellerListingLookup";
			var outParam = Schema.getAAttr("SellerListingLookupResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		TagLookup: function (body, outMethod) {
			var operation = "TagLookup";
			var output = "TagLookupResponse";
			var action = "http://soap.amazon.com/TagLookup";
			var outParam = Schema.getAAttr("TagLookupResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		VehicleSearch: function (body, outMethod) {
			var operation = "VehicleSearch";
			var output = "VehicleSearchResponse";
			var action = "http://soap.amazon.com/VehicleSearch";
			var outParam = Schema.getAAttr("VehicleSearchResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		VehiclePartSearch: function (body, outMethod) {
			var operation = "VehiclePartSearch";
			var output = "VehiclePartSearchResponse";
			var action = "http://soap.amazon.com/VehiclePartSearch";
			var outParam = Schema.getAAttr("VehiclePartSearchResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		VehiclePartLookup: function (body, outMethod) {
			var operation = "VehiclePartLookup";
			var output = "VehiclePartLookupResponse";
			var action = "http://soap.amazon.com/VehiclePartLookup";
			var outParam = Schema.getAAttr("VehiclePartLookupResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

		MultiOperation: function (body, outMethod) {
			var operation = "MultiOperation";
			var output = "MultiOperationResponse";
			var action = "http://soap.amazon.com/MultiOperation";
			var outParam = Schema.getAAttr("MultiOperationResponse");
			SOAPActions.call(AWSECommerceService.AWSECommerceServicePort.address, operation, output, outMethod, AWSECommerceService.namespace, action, true, body, outParam, AWSECommerceService.AWSECommerceServicePort.soapVersion);
		},

	},
}



SOAPActions = {

	// Inicializa a requisição diferenciando uma operação síncrona de uma assíncrona através do retorno
	call: function(location, operation, operationResponse, outMethod, namespace, soapaction, async, inParam, outParam, soapVersion) {
		if(async) {
			SOAPActions.chargeMessage (location, operation, operationResponse, outMethod, namespace, soapaction, async, inParam, outParam, soapVersion);
		} else {
			return SOAPActions.chargeMessage (location, operation, operationResponse, outMethod, namespace, soapaction, async, inParam, outParam, soapVersion);
		}
	},

	// Cria a mensagem, abrea conexão com o web service e envia a mensagem
	chargeMessage: function(location, operation, operationResponse, outMethod, namespace, soapaction, async, inParam, outParam, soapVersion) {
		if (soapVersion = "1.1") {
			var message =
			"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
			"<soap:Envelope " +
			"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
			"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +
			"xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
			"<soap:Body>" +
			"<" + operation + " xmlns=\"" + namespace + "\">" +
			Utils.objectToXml(inParam) +
			"</" + operation + "></soap:Body></soap:Envelope>";
		} else if (soapVersion = "1.2") {
			var message =
			"<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
			"<soap12:Envelope " +
			"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
			"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +
			"xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">" +
			"<soap12:Body>" +
			"<" + operation + " xmlns=\"" + namespace + "\">" +
			Utils.objectToXml(inParam) +
			"</" + operation + "></soap12:Body></soap12:Envelope>";
		}
		else throw new Error (500, "Vers�o SOAP para a constru��o da mensagem n�o identificada");
		// Envia a requisição
		var xmlHttp = Utils.getXmlHttp(); 
		xmlHttp.open("POST", location, async);
		xmlHttp.setRequestHeader("SOAPAction", soapaction);
		xmlHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
		if(async) {
			xmlHttp.onreadystatechange = function() {
				if(xmlHttp.readyState == 4) {
					SOAPActions.chargedMessage(operation, operationResponse, outMethod, async, xmlHttp, outParam);
				}
			}
		}
		xmlHttp.send(message);
		if (!async) {
			return SOAPActions.chargedMessage(operation, operationResponse, outMethod, async, xmlHttp, outParam);
		}
	},

	// Quando o readyState for ok (4), Trabalhamos em cima da resposta e chamamos o método OutMethod que foi definido pelo usu�rio
	chargedMessage: function(operation, operationResponse, outMethod, async, xmlHttp, outParam) {
		// Aloca a resposta SOAP em uma estrutura de Nó utilizando a API DOM.
		var ResponseNode = Utils.getNode(xmlHttp, operationResponse);
		//Converte a estrutura de Nó para a estrutura de dados de outParam (Objeto)
		outParam = Utils.nodeToObject(ResponseNode, outParam);
		// E retorna a resposta
		outMethod(outParam);
		if(!async) {
			return outParam;
		}
	}	
}


Utils = {

	// checa se o objeto é um Array
	isArray: function(object) {
		return object != null && typeof object == "object" && 'splice' in object && 'join' in object;
	},

	// verifica se o n� irm�o mais velho possui o mesmo nome do atual
	samePreviousSibling: function(node) {
		try {
			return (node.nodeName == node.previousSibling.nodeName);
		}
		catch (ex) {}
		return false;
	},

	// verifica se o n� irm�o mais novo possui o mesmo nome do atual
	sameNextSibling: function(node) {
		try {
			return (node.nodeName == node.nextSibling.nodeName);
		}
		catch (ex) {}
		return false;
	},

	// converte a estrutura de dados utilizada para tags XML
	objectToXml: function (obj) {
		xmlStr = "";
		for (var i in obj.getAttr()[0]) {
			xmlStr += Utils.buildTag (obj.getAttr()[0][i]);//t� feio
		}
		return xmlStr;
	},

	// fun��o que complementa a anterior
	buildTag: function (obj) {
		var strTag = "";
		if (obj.getType() == "Complex") {
			if (obj.getAttr().length > 0) {
				strTag += "<" + obj.getName() + ">";
				for (var p in obj.getAttr()) {
					for (var i in obj.getAttr()[p]) {
						strTag += Utils.buildTag (obj.getAttr()[p][i]);
					}
				}
				strTag += "</" + obj.getName() + ">";
			}
		} else {
			if (obj.getValue() != undefined) {
				strTag += "<" + obj.getName() + ">";
				strTag += obj.getValue().replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
				strTag += "</" + obj.getName() + ">";
			}
		}
		return strTag;
	},

	// Retorna o nome da Tag sem o Namespace (Nome local)
	getNodeLocalName: function (node) {
		return node.nodeName.substring(node.nodeName.indexOf(":") + 1);
	},

	//Retorna verdadeiro se o n� for folha
	isLeafNode: function(node) {
		return (node.childNodes.length == 1 && (node.childNodes[0].nodeType == 3 || node.childNodes[0].nodeType == 4));
	},

	// verifica qual � a posi��o do no atual em rela��o aos irm�os mais velhos de mesmo nome
	getSameNodesPosition: function(node) {
		var result = 0;
		while (Utils.samePreviousSibling(node)) {
			node = node.previousSibling;
			result++;
		}
		return result;
	},

	// Constr�i um objeto do tipo OutParam se baseando na �rvore de n�s
	nodeToObject: function(node, outParam) {
		if (node == null) {
			return null;
		}
		// Se o n� for do tipo texto, ent�o retorna seu valor final
		if (node.nodeType == 3 || node.nodeType == 4) {
			return Utils.getValue(node, outParam);
		}
		nodeLocalName = Utils.getNodeLocalName(node);
		// Apenas continua se o nodeName existir no objeto outParam, caso contr�rio ocorre um erro
		if (outParam.getName() == nodeLocalName) {
			// Se for um n� folha retorna o m�todo recursivamente chamando o n� filho para o mesmo outParam
			if (Utils.isLeafNode(node)) {
				return Utils.nodeToObject(node.childNodes[0], outParam);
			}
			for(var i = 0; i < node.childNodes.length; i++) { 
				var pos = Utils.getSameNodesPosition (node.childNodes[i]);
				var p = Utils.nodeToObject(node.childNodes[i], outParam.getAAttr(Utils.getNodeLocalName(node.childNodes[i]), pos));
				outParam.setAAttr(p, Utils.getNodeLocalName(node.childNodes[i]), pos);
			}
			return outParam;
		}
		throw new Error (500, "Erro na convers�o de n�s para objetos");
	},

	// Retorna um valor baseando-se no objeto que estaria destinado a receber o valor
	getValue: function(node, outParam) {
		var value = node.nodeValue;
		if (outParam.getType() == "Simple") {
			outParam.setValue(value);
			return outParam;
		} else if (outParam.getType() == "Complex") {
			throw new Error (500, "Não é possível retorna o valor de um ComplexType")
		}
	},

	// Retorna o n� que possui o local name passado por par�metro, caso exista mais de um os namespaces seriam necess�rios e ocasionar� em um erro, visto que o IE n�o trabalha com namespaces.
	getNodeByLocalName: function (nodeList, localName) {
		var qtd = 0;
		for (i=0; i < nodeList.length; i++) {
			if (nodeList[i].nodeName.substring(nodeList[i].nodeName.indexOf(":") + 1).match(localName)) {
				qtd = qtd + 1;
				node = nodeList[i];
			}
		}
		if (qtd < 1) throw new Error(500, "Tentativa de recuperar um n� inexistente.");
		if (qtd > 1) throw new Error(500, "Existe mais de um n� para este LocalName.");
		return node;
	},

	// Ajuda a construir uma estrutura de N� a partir da um xml. getElementsByTagName n�o funciona no IE6 e anteriores.
	getNode: function(xml, tag) {
		try {
			nodeList = xml.responseXML.selectNodes(".//*[local-name()=\""+ tag +"\"]"); // ser� que funciona? falta testar
			return Utils.getNodeByLocalName(nodeList, tag);
		}
		catch (ex) {}
		nodeList = xml.responseXML.getElementsByTagName('*');
		return Utils.getNodeByLocalName(nodeList, tag);
	},

	//Testa os parsers para uma compatibilidade com diversos browsers.
	getXmlHttp: function() { 
		try {
			if (window.XMLHttpRequest) {
				var req = new XMLHttpRequest();
				if (req.readyState == null) {
					req.readyState = 1;
					req.addEventListener("load", function() {
						req.readyState = 4;
						if (typeof req.onreadystatechange == "function") {
							req.onreadystatechange();
						}
					},
					false);
				}
				return req;
			}
			if (window.ActiveXObject) {
				var parsers = ["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
				for(var i = 0; i < parsers.length; i++) {
					try {
						return new ActiveXObject(parsers[i]);
					}
					catch (ex) {};
				}
				throw new Error("Imposs�vel encontrar um Xml parser instalado");
			}
		}
		catch (ex) {}
		throw new Error("Este navegador n�o suporta objectos XmlHttp");
	}
}
